import { PageContainer } from '@ant-design/pro-components';
import '@umijs/max';
import React, {useEffect, useState} from 'react';
import ReactECharts from 'echarts-for-react';
import {listTopInvokeInterfaceInfoUsingGet} from "@/services/qingapi-backend/analysisController";

/**
 * 接口分析
 * @constructor
 */
const InterfaceAnalysis: React.FC = () => {

  const [data, setData] = useState<API.InterfaceInfoVO[]>([]);

  useEffect(() => {
    try {
      listTopInvokeInterfaceInfoUsingGet().then(res => {
        if (res.data) {
          setData(res.data);
        }
      })
    } catch (e: any) {

    }
    // todo 从远程获取数据
  }, [])

  // 映射：{ value: 1048, name: 'Search Engine' },
  const chartData = data.map(item => {
    return {
      value: item.totalNum,
      name: item.name,
    }
  })

  const option = {
    title: {
      text: '调用次数最多的接口TOP3',
      left: 'center',
    },
    tooltip: {
      trigger: 'item',
    },
    legend: {
      orient: 'vertical',
      left: 'left',
    },
    series: [
      {
        name: 'Access From',
        type: 'pie',
        radius: '50%',
        data: chartData,
        emphasis: {
          itemStyle: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)',
          },
        },
      },
    ],
  };

  return (
    <PageContainer>
      <ReactECharts option={option} />
    </PageContainer>
  );
};
export default InterfaceAnalysis;
// import { PageContainer } from '@ant-design/pro-components';
// import '@umijs/max';
// import React, { useEffect, useState } from 'react';
// import ReactECharts from 'echarts-for-react';
//
// /**
//  * 接口分析
//  * @constructor
//  */
// const InterfaceAnalysis: React.FC = () => {
//   // 存储数据的状态
//   const [data, setData] = useState([]);
//   // 控制加载状态的状态，默认加载中(true)
//   const [loading, setLoading] = useState(true);
//
//   useEffect(() => {
//     // todo 从远程获取数据
//   },[])
//
//   // ECharts图表的配置选项
//   const option = {
//     title: {
//       text: 'Referer of a Website',
//       subtext: 'Fake Data',
//       left: 'center'
//     },
//     tooltip: {
//       trigger: 'item'
//     },
//     legend: {
//       orient: 'vertical',
//       left: 'left'
//     },
//     series: [
//       {
//         name: 'Access From',
//         type: 'pie',
//         radius: '50%',
//         data: [
//           { value: 1048, name: '鱼皮' },
//           { value: 735, name: 'Direct' },
//           { value: 580, name: 'Email' },
//           { value: 484, name: 'Union Ads' },
//           { value: 300, name: 'Video Ads' }
//         ],
//         emphasis: {
//           itemStyle: {
//             shadowBlur: 10,
//             shadowOffsetX: 0,
//             shadowColor: 'rgba(0, 0, 0, 0.5)'
//           }
//         }
//       }
//     ]
//   }
//   return (
//     <PageContainer>
//       {/* 使用 ReactECharts 组件，传入图表配置 */}
//       <ReactECharts loadingOption={{
//         // 控制加载状态
//         showLoading: loading
//       }}
//                     option={option} />
//     </PageContainer>
//   );
// };
// export default InterfaceAnalysis;
